package com.hnichr.ump.common.doc.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hnichr.ump.common.entity.UmpEntity;
import com.mxpioframework.jpa.annotation.Generator;
import com.mxpioframework.security.annotation.Dict;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = false)
@Entity
@Table(name = "t_doc_order")
@Schema(description = "文印商城订单表")
public class Order extends UmpEntity {
	private static final long serialVersionUID = 4901751783423496828L;

	@Id
	@Generator
	@Column(name = "RID", updatable = false)
	@Schema(description = "ID")
	private String id;

	/** 订单编号 */
	@Generator
	@Column(name = "ORDER_NO")
	@Schema(name = "订单编号")
	private String orderNo;
	/** 微信昵称 */
	@Column(name = "WX_NAME")
	@Schema(name = "微信昵称")
	private String wxName;
	/** 手机号 */
	@Column(name = "WX_PHONE")
	@Schema(name = "手机号")
	private String wxPhone;
	/** 单位 */
	@Column(name = "WX_COMPANY")
	@Schema(name = "单位")
	private String wxCompany;
	/** 业务类型 */
	@Column(name = "BIZ_TYPE")
	@Schema(name = "业务类型")
	@Dict(dicCode = "bizType")
	private String bizType;
	/** 打印颜色 */
	@Column(name = "PRINT_COLOR")
	@Schema(name = "打印颜色")
	@Dict(dicCode = "printColor")
	private String printColor;
	/** 横幅颜色 */
	@Column(name = "BANNER_COLOR")
	@Schema(name = "横幅颜色")
	@Dict(dicCode = "bannerColor")
	private String bannercolor;
	/** 尺寸 */
	@Column(name = "SIZES")
	@Schema(name = "尺寸")
	@Dict(dicCode = "size")
	private String size;
	/** 打印类型 */
	@Column(name = "PRINT_TYPE")
	@Schema(name = "打印类型")
	@Dict(dicCode = "printType")
	private String printType;
	/** 打印纸张类型 */
	@Column(name = "PRINT_PAPER_TYPE")
	@Schema(name = "打印纸张类型")
	@Dict(dicCode = "printPaperType")
	private String printPaperType;
	/** 名片纸张类型 */
	@Column(name = "CARD_PAPER_TYPE")
	@Schema(name = "名片纸张类型")
	@Dict(dicCode = "cardPaperType")
	private String cardPaperType;
	/** 数量 */
	@Column(name = "NUM")
	@Schema(name = "数量")
	private Integer num;
	/** 装订方式 */
	@Column(name = "BIND_TYPE")
	@Schema(name = "装订方式")
	@Dict(dicCode = "bindType")
	private String bindType;
	/** 装订本数 */
	@Column(name = "BIND_NUM")
	@Schema(name = "装订本数")
	private Integer bindNum;
	/** 其他需求 */
	@Column(name = "OTHER_DEMAND")
	@Schema(name = "其他需求")
	private String otherDemand;
	/** 长度 */
	@Column(name = "LENGTHS")
	@Schema(name = "长度")
	private Double length;
	/** 内容 */
	@Column(name = "CONTENTS")
	@Schema(name = "内容")
	private String content;
	/** 设计类型 */
	@Column(name = "DESIGN_TYPE")
	@Schema(name = "设计类型")
	@Dict(dicCode = "designType")
	private String designType;
	/** 订单状态 */
	@Column(name = "STATUS")
	@Schema(name = "订单状态")
	@Dict(dicCode = "status")
	private String status;
	/** 设计师ID */
	@Column(name = "DESIGNER_ID")
	@Schema(name = "设计师ID")
	private String designerId;
	/** 设计师姓名 */
	@Column(name = "DESIGNER_NAME")
	@Schema(name = "设计师姓名")
	private String designerName;
	/** 期望交付日期 */
	@Column(name = "EXPECT_DATE")
	@Schema(name = "期望交付日期")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date expectDate;
	/** 预估价 */
	@Column(name = "PRE_PRICE")
	@Schema(name = "预估价")
	private Double prePrice;
	/** 预览图 */
	@Column(name = "PREVIEW_IMAGE")
	@Schema(name = "预览图")
	private String previewImage;
	/** 资源文件 */
	@Column(name = "RES_FILE")
	@Schema(name = "资源文件")
	private String resFile;
	/** 校对ID */
	@Column(name = "CHECK_ID")
	@Schema(name = "校对ID")
	private String checkId;
	/** 校对姓名 */
	@Column(name = "CHECK_NAME")
	@Schema(name = "校对姓名")
	private String checkName;
	/** 后工ID */
	@Column(name = "AFTER_WORK_ID")
	@Schema(name = "后工ID")
	private String afterWorkId;
	/** 后工姓名 */
	@Column(name = "AFTER_WORK_NAME")
	@Schema(name = "后工姓名")
	private String afterWorkName;
	/** 下单人 */
	@Column(name = "OPEN_ID")
	@Schema(name = "下单人")
	private String openId;
	/** 实付金额 */
	@Column(name = "PAID_AMT")
	@Schema(name = "实付金额")
	private String paidAmt;
	/** 发票状态 */
	@Column(name = "BILL_STAT")
	@Schema(name = "发票状态")
	@Dict(dicCode = "billStat")
	private String billStat;
	/** 付款状态 */
	@Column(name = "PAID_STAT")
	@Schema(name = "付款状态")
	@Dict(dicCode = "paidStat")
	private String paidStat;
	/** 有效标识 */
	@Column(name = "VALID_FLAG")
	@Schema(name = "有效标识")
	private String validFlag;
}
